package com.hkyp.ss.course.apis;

import com.hkyp.ss.course.apis.dto.common.PageReq;
import com.hkyp.ss.course.apis.dto.common.PageResp;
import com.hkyp.ss.course.apis.dto.request.HomePageCourseDTO;
import com.hkyp.ss.course.apis.dto.response.CourCommVoterVO;
import com.hkyp.ss.course.apis.dto.response.CourseSummaryVO;
import com.hkyp.ss.course.apis.dto.response.CourseVO;
import com.hkyp.ss.course.apis.exception.UnacceptableException;

import java.util.List;
import java.util.Map;

public interface CourseService {

    CourseVO selectCourseNaked(Long id);

    /**
     * 学习课程
     * @param userId
     * @param courseId
     * @throws UnacceptableException
     */
    void studyCourse(Long userId,Long courseId) throws UnacceptableException;

    PageResp<CourseSummaryVO> selectHomePageCourseV2(HomePageCourseDTO homePageCourseDTO, PageReq pageReq,Long userId);
    PageResp<CourseSummaryVO> selectCourseByKeyword(String keyword, PageReq pageReq);

    void saveCourse(List courses);

    List<CourseSummaryVO> selectRecommendedCourse(Long userId);

    PageResp<CourseSummaryVO> selectHomePageCourse(HomePageCourseDTO homePageCourseDTO, PageReq pageReq);

    CourseVO selectCourse(Long id,Long userId);

    CourCommVoterVO likeCourse(Long cid, Integer action, Long userId);

    Map collectCourse(Long cid, Integer action, Long userId);
}
